Software Composition with Multiple Nested Inheritance

نویسندگان

  • Nathaniel Nystrom
  • Xin Qi
  • Andrew C. Myers
چکیده

This paper introduces a programming language that makes it convenient to extend large software systems and even to compose them in a modular way. JX/MI supports multiple nested inheritance, building on earlier work on nested inheritance in the language JX. Nested inheritance permits modular, type-safe extension of a package (including nested packages and classes), while preserving existing type relationships. Multiple nested inheritance enables simultaneous extension of two or more classes or packages, composing their types and behavior while resolving conflicts with a relatively small amount of code. The utility of JX/MI is demonstrated by using it to construct two composable, extensible frameworks: a compiler framework for Java, and a peer-to-peer networking system. Both frameworks support composition of extensions. For example, two compilers adding different, domain-specific features to Java can be composed to obtain a compiler for a language that supports both sets of features.

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Nested Intersection for Scalable Software Composition

This paper introduces a programming language that makes it convenient to compose large software systems, combining their features in a modular way. J& supports nested intersection, building on earlier work on nested inheritance in the language Jx. Nested inheritance permits modular, type-safe extension of a package (including nested packages and classes), while preserving existing type relation...

متن کامل

Encapsulation and composition as orthogonal operators on mixins: a solution to multiple inheritance problems

In class-based multiple inheritance systems, interpretations as different as duplication, sharing and specialization are associated with the single phenomenon of name collisions. To deal with those name collisions, various mechanisms have been proposed, but these solutions generally restrain software reusability which is considered to be one of the key features of OO systems. On top of this, mo...

متن کامل

ACM Computing Surveys 28(4es), December 1996, http://www

This is a position statement for the workshop on strategic directions in computing research held at MIT in June 1996. In the (conventional) OO model, the separation of concerns principle is supported basically in three ways: 1. By defining objects as the models of real-world concepts that arè`naturally'' separated from each other 2. By separating the concerns of providing an abstract object int...

متن کامل

Inheritance Decomposed Position Paper

Inheritance is often portrayed as a fundamental ingredient of object-oriented programming, one which is essential to building extensible software systems. However, inheritance is also a controversial mechanism with many competing and often contradictory interpretations, whose use can even impede extensibility in certain scenarios. Decomposing inheritance into the more basic mechanisms of object...

متن کامل

Solving the modeling problems of object-oriented languages by composing multiple aspects using composition filters

Building software from reusable components is considered important in reducing development costs. Object-oriented languages such as C++, Smalltalk and Java, however, are not capable of expressing certain aspects of applications in a reusable way. Software engineers may experience difficulties in composing and reusing applications from components, for example if components implement code for mul...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 2005